<template>
  <div class="detail">         
            <van-nav-bar
                title="商品详情页"
                left-text="返回"
                right-text="..."
                left-arrow
                @click-left="$router.go(-1)"
            />
            <!-- 店铺头部 -->
        <div class="shop-header" :style="{backgroundImage:'url(' + (shopinfo.info && shopinfo.info.poi_back_pic_url) +')' }">
          <div class="left">
            <img :src="shopinfo.info && shopinfo.info.picUrl" alt="">
            <span>{{ shopinfo.info && shopinfo.info.name}}</span>
          </div>
          <!-- 取消收藏按钮 -->
          <!-- <div class="right" v-if="isCollect" @click="$store.commit('cancel_collect',shopinfo.info)" style="color:red">❤</div> -->
          <div class="right" v-if="isCollect" @click="cancel_collect(shopinfo.info)" style="color:red">❤</div>
          <!-- 收藏按钮 -->
          <!-- <div class="right" v-else @click="$store.commit('collect',shopinfo.info)">❤</div> -->
          <div class="right" v-else @click="collect(shopinfo.info)">❤</div>
        </div>

        <!-- 店铺内的 商品分类和列表 -->
        <div class="box">
          <div class="left">
            <van-sidebar v-model="currentIndex">
              <van-sidebar-item  v-for="(item,index) in shopinfo.taglist" :key="index" :title="item.name" />
            </van-sidebar>
          </div>
          <div class="right">
            <div class="good" v-for="(item,index) in shopinfo.taglist && shopinfo.taglist[currentIndex].goodlist" :key="index">
              <div class="imgbox">
                <img :src="item.picture" alt="">
              </div>
              <div class="text">
                <div class="up">
                  <div class="name">{{item.name}}</div>
                  <div class="desc">{{item.month_saled_content}}</div>
                </div>
                <div class="down">
                  <div class="price">¥{{item.min_price}}</div>
                  <div class="opes">
                    <span>-</span>
                    <span>1</span>
                    <span>+</span>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
  </div>
</template>

<script>
//导入vuex中的工具函数(辅助函数) , 使用该工具函数 简化vuex在组件中的应用
import { mapState,mapMutations,mapGetters,mapActions } from 'vuex'

import { Dialog,NavBar,Toast } from 'vant';
import { shop_shopinfo } from '../utils/api.js'
export default {
  data(){
    return {
      currentIndex:0,
      shopinfo:{}
    }
  },
  computed:{
    //mapState()这个工具函数 会将vuex中的数据 映射到组件的computed中.
    ...mapState(['collectlist']),
    //mapGetters()这个工具函数 会将vuex中的计算方法 映射到组件的computed中.
    ...mapGetters([]),
    isCollect(){ //当前店铺是否已经收藏( true 表示已收藏, false 表示未收藏 )
      //拿到 当前店铺对象, 还要同时拿到收藏列表, 然后做判断, 返回判断结果
      //var index = this.$store.state.collectlist.findIndex((item)=>{
      var index = this.collectlist.findIndex((item)=>{
        return item.mtWmPoiId == this.shopinfo.mtWmPoiId;
      })
      return index !== -1
    }
  },
  methods:{
    //mapMutations()这个工具函数 会将vuex中的同步方法 映射到组件的methods中.
    ...mapMutations(['collect','cancel_collect']),
    //mapActions()这个工具函数 会将vuex中的异步方法 映射到组件的methods中.
    ...mapActions([])
  },
  mounted(){
    shop_shopinfo( {id: this.$route.params.id} ).then((res)=>{
      if( res.data.shopinfo ){ //店铺正常营业
        this.shopinfo = res.data.shopinfo;
      }else{ //店铺倒闭
        Dialog.alert({ //给出一个轻提示
          title: '提示',
          message: '该店铺已倒闭!'
        }).then(() => { //点击确定后返回上一个路由
          this.$router.go(-1);
        });
      }
    })
  }
}
</script>

<style lang="scss" scoped>
.shop-header{
  display: flex;
  justify-content: space-between;
  padding: 50px 10px;
  background-size: cover;
  background-repeat: no-repeat;
  color: white;
  .left{
    flex:1;
    display: flex;
    align-items: center;
    img{
      width: 30px;
      margin-right: 10px;
      border-radius: 50%;
    }
  }
  .right{
    width: 20px;
    text-align: right;
  }
}
.box{
  display: flex;
  .left{
    width: 80px;
  }
  .right{
    flex:1;
    .good{
      display: flex;
      margin: 10px;
      .imgbox{
        width: 80px;
        margin-right: 10px;
        img{
          width: 100%;
        }
      }
      .text{
        flex:1;
        font-size: 12px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        .down{
          display: flex;
          justify-content: space-between;
        }
      }
    }
  }
}
</style>